Unstable readings from potentiometer with long wire

I have Bourns 3395s 10k potentiometer connected to Arduino using 25 meter long wire (I have used good quality CAT6 cable).

I have been struggling to get stable readings with such long wire, readings fluctuate.
By adding a 47uF cap (between analog input and GND), i've managed to make it stable up to some extent, but still many times readings jump.

Any suggestions to resolve this problem?

Did you select a pair of cores inside the CAT6 cable?


I think you are going to run into a lot of problems, because of the small voltage and very low amp.
Some ideas:
Maybe you can couple some wires, to get less R, and so less drop of V and A?
Maybe you can connect the cable's shild to ground?
Or feed the cable through a ferrite core?

Can you explain a little what you do with the potentiometer?
Maybe you have to convert the whole system to a current loop, this very old system is still in use today in an industrial environment, as it is particularly helpful in solving the problems you are currently confronted with.
You can by potis for current loop, and also very cheap 4-20ma sources (or create your own with some simple electronic-parts), and also you can read the loop with some parts
(see here: Reading 4 to 20ma pressure sensor using uno)

Best regards


Thanks for the inputs, let me explain the project concept. I am trying to build overhead water tank level sensor system using potentiometer. Potentiometer is installed on water tank which rotates using pulley-weight mechanism. Water tank is around 25 meters away from Arduino, hence used 25 meters CAT6 cable (as of now used only 3 cores from it, as suggested by you earlier, will try to couple 2-3 wires to reduce R)

  • External power source is of 3W
  • POT is 10k (Bourns 3390s)

Attaching schematic diagram to explain concept (excuse me for novice drawing)

If there is power near the water tank then it would be easier to put an Arduino there and transmit the data to another one situated wherever you want to read it

You could use Bluetooth with the Arduino near the tank and read the data on your PC, a smartphone or another Arduino

Going further you could connect the Arduino (or an ESP8266 or ESP32) near the tank to your WiFi and read the value from anywhere in the World

Hi @techcoze .

Your CAT6 is UTP or STP?
UTP CAT6 cable has 4 pairs of wires.

Green/Green White;
Orange/White of orange;
Blue/White of blue;
Brown/White of the brown;

My suggestion for reducing electrical noise induction:
Use a color for each conection:
Ex: Green for center of pot, Blue for GND and Orange for +V.

Then connect the whites of these pairs to GND, but only the end of the Arduino side.

Must connect only one side to avoid ground loop.

And as I said @goma, also use a ferrite core on the cable.

RV mineirin

Update: rectified 95% of the problem by

  • using 2 CAT6 wire in couple per connection (to reduce resistance)
  • grounded CAT6 drain wire on one side
  • added 100uF cap between gnd and analog pin

Ferrite core is ordered and it's in transit, looks like it will not be needed, but will check if it can further increase reading stability. But anyway current 95% reading stability if good enough for my use case.

Also used software EMA method to smoothen out reading curve.