In thinking about this, I still don't understand the results you're getting. Take the following circuit feeding the Arduino A/D input. I would expect the results to be more consistent across the steps, and I'm truthfully confused as to why they wouldn't be. The input impedance of the analog inputs on the Arduino are claimed to be in the many megohm range.
The arduino analogRead() function should return a value consistent across it's range relative to the input voltage.
Reads the value from the specified analog pin. Arduino boards contain a multichannel, 10-bit analog to digital converter. This means that it will map input voltages between 0 and the operating voltage(5V or 3.3V) into integer values between 0 and 1023. On an Arduino UNO, for example, this yields a resolution between readings of: 5 volts / 1024 units or, 0.0049 volts (4.9 mV) per unit.
What am I missing?