Arduino issues with accurate ADC and heat?

Krodal:
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.

I thought so too, regarding the resistance values, and started with similar resistor sizes.
It caused the motorcycles ECU (computer) to show an error code, since the ECM has its own gear measuring circuits (ADC) in parallel to my circuit. The reading is actually very accurate when it is not too hot - I just went to the bike (it cooled down from the morning ride) and now Arduino shows 75.4F, and a clean accurate of 5.00V for the Neutral gear (which is correct).

Regarding analogReference(DEFAULT); - I don't have any such call in my code.
I just simply call analogRead directly.
"
int value = analogRead( ANALOGPIN_GEAR_POSITION );
"

Do I need to call it at all? If I understand correctly the function call isn't mandated for default (5V) behavior.