Every time through loop() you are doing everything.
Perhaps you only need to read the pots every 10ms or so, then most of the calls to loop() can just be the
run() method calls for the motors which will make AccelStepper much more responsive.
You need to learn how to avoid code-duplication. You have 4 copies of most of your code, which is bad news in
many ways, 4 times more places for bugs, 4 times harder to maintain, 4 times more code to read.
Parameterize or index your code so only one copy is needed.
Thanks Mark, I'll try that now. Do you have any good examples of how to do this? I figured I would need to duplicate because each of the 4 sets of code is storing data averaging. I guess in VB code you'd use an array to store the data but I haven't learned how to do this with Arduino yet...
[EDIT] I noticed that I can increase the .setMaxSpeed to 15000 and it does improve the speed, but when I move the pot quickly the pointer stops mid sweep and then loses position - I guess this is too fast...
The serial code is already running only every 10ms, but I added another if statement to run the pot calculations and .moveto command every 10ms though it seems not to have any effect... Clearly doing something wrong here...