Often motor controllers have a potentiometer failure-detection circuit for safety:

This means that trying to replace the potentiometer with just an anlog output (low-pass-filtered PWM) won't work - you have to also replace the pot with a suitable resistor, and also drive the wiper connection with analog. Controllers commonly assume that if the pot stops taking a suitable amount of current then the controller should shutdown as something has gone open-circuit or shorted and the wiper voltage is giving an erroneous reading...

If you are getting negative voltages at the Arduino you probably used the wrong terminal for Ground. You should connect the Arduino ground to the negative end of the battery pack. Then connect the center of the battery pack to the Arduino Vin.

If I connect the positive and negative lines of my power adapter to one battery, I get 12V, and can run the Arduino, but the voltage I read from the pot on the UNO is incorrect.

If I connect the positive and negative lines of my power adapter to different batteries, then I have 24V at the power adapter.

I did not run a ground to the UNO. Should have I?

English words are not the best way to explain exactly how you have stuff wired up. A schematic drawing is the universal language of electronic circuits and wiring and should be used if at all possible when seeking accurate help with problems. So even if you have to hand draw it and take a picture and post that, it's usually much better then hoping others understand what you done with your wiring.