Hi,
OK, that's a great value because then each bit in the ADC result equals exactly 4mV but your numbers still doesn't add up....

If you input exactly 3V you should get a value of 750 +/- a couple of bits - not 678 as you're apparently getting.

Have you checked the VRef voltage with a scope? Perhaps it oscillates or have a lot of noise?

What if you replace the 10k pot with a 1k pot, and put a 10nF capacitor between the ADC input and GND. Or, what if you increas the sampling time? (I'll admit, I don't really have this sampling time and Tad stuff clear in my head at the moment, need to do a little reading)

Once you get a correct ADC result for the voltage you're feeding it you can increase the resolution by oversampling. If you take 40 samples, add them together and divide the result by 10 you have a value reading in mV (well, almost - there's 4mV "missing" at the top).
Code:
adval = 0
For i = 0 to 39
  ADCIN 0, adval
  Voltage = Voltage + adval
  PAUSEUS 100
NEXT

LCDOUT $FE, 1, DEC Voltage/10000, ".", DEC3 Voltage // 10000
/Henrik.