I recently looked at one of the application notes on Microchip for doing some ADC with a PIC18 microcontroller. I can't find the link again, but basically what it did was create a loop which ran 16 times. In the loop the ADC reading was done and the result added to a total which at the end was divided by 16. Is it necessary to perform the ADC this many times? Is one reading not accurate enough?