ADC più preciso

Forse mi sono spiegato male io o non ho capito. A causa di vari fattori la tensione di alimentazione di Arduino può variare senza che io lo sappia quindi il valore 1023 non so mai a cosa corrisponda esattamente. Può corrispondere a 5V ma dopo un paio di secondo potrebbe essere 4.95 o 5.02 ecc ecc.. Questo problema è amplificato se Arduino viene connesso con l'USB al PC.
A questo punto io voglio fare una lettura di tensione con analogRead(). Leggo, ad esempio, il valore 345 lo devo dividere per 1023 e poi moltiplicare per 5? per 4.95? per 5.02? ecc ecc
Monty