I am trying to get stable ADC readings.

I got a PIC 16F688 hooked up to a battery with a voltage regulator and with proper bypass capacitors. Each time I poll the ADC using ADCIN I get a different reading. Even averaging 50 samples is not enough to get a stable value. I have tried both internal and external oscillators (up to 20MHz).

I am testing it using a simple voltage divider with two resistors of the same value so that I get a value around 512 (ADC in 10 bit mode).

Is there anything I can do to stabilize the readings? And what is the source of all the noise?

Typically I am getting values oscillating from 432 up to 457, that's about a 5% oscillation.

There has to be a way to make the readings more accurate.6