Arduino issues with accurate ADC and heat?

1MOhm is too much for a good reading.
The analog input should have 10k, so you could use a diviver of two 22k resistors (or less).
Do you also have a delay of 20ms after setting: analogReference(DEFAULT);

Now you mention it, ground current could be a problem. That can cause all kinds of strange effects.