Need help calibrating ADC input using a voltage divider
Aside from reducing the voltage divider resistances, which is necessary, but not sufficient, you need to consider the reference if you want accurate readings. For the divider, 10K is a good maximum, so if you use a 49.9K 1% resistor and a 10.0K 1% resistor you'll be pretty close o the desired ratio and the impedance from the ADC's input will look like 8.3K. A 10n-100n ceramic cap across the 10K won't hurt. 

The Arduino does not have an ADC voltage reference so the reading is going to be ratiometric to the supply voltage. A 5% difference in supply voltage means a 5% difference in reading. There is a bandgap reference on the ATmega chip, however it is loosely specified (+/-10%), is relatively low voltage (1.1V nominal) and can only be used as an input to the ADC. If you can measure an accurate voltage even with the ratiometric reading you can correct for supply voltage with calculations if the supply voltage stays constant enough. 

Or you could attach a precision external ADC and reference to the Arduino. `



If you want to do an offset zero you can use a circuit like this one:







simulate this circuit &ndash; Schematic created using CircuitLab

Use a RRIO op-amp such as Microchip MCP6001. 

If you don't like my choice of input/output voltages, you can recalculate R1-R5 to get what you want, it's just simple algebra that anyone can do with a bit of patience. 

R1/R5 are two resistors rather than one to get the 9:1 ratio with standard E96 series resistor values. R6 is not critical- it just ensures enough current gets to D1 to maintain regulation. The others should be precision types. 

Since a fairly accurate and very stable voltage is subtracted from the input voltage you may find using the supply voltage to be acceptable as a reference, depending on what your actual requirements are. The reduction in sensitivity is 3:1 in this case.