forgive me if I'm way off-base here, because i only skimmed through most of this thread....
When the arduino is not powered up but the wires connected, the heat pump controller results from the thermistor are all wrong. I guess this is normal but can someone explain ?
It sounds like you're trying to hack an existing controller for its temperature sensor, with an arduino. You're using the Arduino's analog input to pick up the controller's thermistor voltage with respect to temperature, and now that you have your Ardiuno connected to your controller's thermistor, the readings on your controller are all wrong.
This is because the design and calibration of the controller's thermistor circuit has been factory set, so when you connect an Arduino to it, you're altering that circuit and its resultant voltage with respect to temperature. Unless you can recalibrate the controller with the Arduino in circuit, that will be the effect.
When is use my multimeter on the wires' end, the reading are OK (volt). Using the multimeter on the cable connected to the arduino pins, I can see the voltage is lower.
The reason for that is because the wire impedance is causing a voltage drop across it.
how can I stabilize the arduino analor readings ? When using the multimeter on the wires' end, the reading I get is stable. But in the arduino, it varies a lot. Not in a significants matter but still. I know that the ethernet shield can introduce variance but I'm not getting stable reading from the Uno analog pin as well even with the shield disconnected.
The answer to this, my friend, will have to be up to the workmanship put into the connections, making sure they are correct and low impedance. Then you might want to experiment with some filtering, to reduce the noise that is coupling into the length of wire between the sensor and the analog input pin. The wire is like an antenna for noise. I would definitely use shielded cable(speaker wire is for barbarians), and/or try using a small 0.1uF between the input and ground, as close to the arduino as possible. Code-wise you can average a bunch of readings to help nullify the huge spikes.