Can you explain your setup in more detail. I had done some ADC speed tests (results somewhere on here) and found the values do change a bit but seem consistent so could be compensated.
On a floating pin the results were...
Default ADCSRA = 10010111
Arduino MEGA ADC Accuracy Tests Over 500 Iterations.
ADPS2 (ADCSRA = 10010001)
Baseline Reading: 560 Rolling Average: 574
Maximum Reading: 575 Minimum Reading: 560 Maximum Jitter: 15
ADPS4 (ADCSRA = 10010010)
Baseline Reading: 572 Rolling Average: 572
Maximum Reading: 572 Minimum Reading: 572 Maximum Jitter: 0
ADPS8 (ADCSRA = 10010011)
Baseline Reading: 568 Rolling Average: 568
Maximum Reading: 568 Minimum Reading: 568 Maximum Jitter: 0
ADPS16 (ADCSRA = 10010100)
Baseline Reading: 563 Rolling Average: 560
Maximum Reading: 563 Minimum Reading: 560 Maximum Jitter: 3
ADPS32 (ADCSRA = 10010101)
Baseline Reading: 559 Rolling Average: 509
Maximum Reading: 559 Minimum Reading: 509 Maximum Jitter: 50
ADPS64 (ADCSRA = 10010110)
Baseline Reading: 537 Rolling Average: 455
Maximum Reading: 537 Minimum Reading: 455 Maximum Jitter: 82
ADPS128 (ADCSRA = 10010111)
Baseline Reading: 514 Rolling Average: 426
Maximum Reading: 514 Minimum Reading: 426 Maximum Jitter: 88
On a pin with a trim pot the results are...
Default ADCSRA = 10010111
Arduino MEGA ADC Accuracy Tests Over 500 Iterations.
ADPS2 (ADCSRA = 10010001)
Baseline Reading: 768 Rolling Average: 768
Maximum Reading: 768 Minimum Reading: 768 Maximum Jitter: 0
ADPS4 (ADCSRA = 10010010)
Baseline Reading: 671 Rolling Average: 671
Maximum Reading: 671 Minimum Reading: 671 Maximum Jitter: 0
ADPS8 (ADCSRA = 10010011)
Baseline Reading: 675 Rolling Average: 675
Maximum Reading: 675 Minimum Reading: 675 Maximum Jitter: 0
ADPS16 (ADCSRA = 10010100)
Baseline Reading: 675 Rolling Average: 675
Maximum Reading: 676 Minimum Reading: 675 Maximum Jitter: 1
ADPS32 (ADCSRA = 10010101)
Baseline Reading: 675 Rolling Average: 675
Maximum Reading: 676 Minimum Reading: 675 Maximum Jitter: 1
ADPS64 (ADCSRA = 10010110)
Baseline Reading: 676 Rolling Average: 675
Maximum Reading: 676 Minimum Reading: 675 Maximum Jitter: 1
ADPS128 (ADCSRA = 10010111)
Baseline Reading: 675 Rolling Average: 675
Maximum Reading: 676 Minimum Reading: 675 Maximum Jitter: 1
The test code is attached.
Try double ADC reading the pin, especially if you change the analogue pin you are reading from each time.
AVR_ADC_Accuracy_Test.ino (2.15 KB)