Puede aumentar la resolución efectiva al sobremuestrear intencionalmente la señal de entrada. Aquí hay un breve resumen de la idea de una nota de aplicación sobre el tema proporcionado por Atmel:
La teoría detrás de 'Sobremuestreo y diezmado' es bastante compleja, pero usar el método es bastante fácil. La técnica requiere una mayor cantidad de muestras. Estas muestras adicionales se pueden lograr sobremuestreando la señal. Para cada bit adicional de resolución, n, la señal debe ser sobremuestreada cuatro veces. La frecuencia con la que muestrear la señal de entrada viene dada por la ecuación 3-1. Para obtener la mejor representación posible de una señal de entrada analógica, es necesario sobremuestrear tanto la señal, ya que una mayor cantidad de muestras dará una mejor representación de la señal de entrada, cuando se promedia.
La nota de solicitud completa se puede obtener aquí: http://www.atmel.com/images/doc8003.pdf .
En su caso específico, necesitaría muestrear a aproximadamente 8KHz para obtener el equivalente de 16 bits de resolución de su ADC de 12 bits.
Así es como llegué a este número:
f_oversample_rate = f_current_sample_rate * (4 * (desired_bits - current_bits))
f_oversample_rate = 500Hz * (4 * (16 - 12))
f_oversample_rate = 500Hz * (4 * 4)
f_oversample_rate = 500Hz * 16
f_oversample_rate = 8KHz