I have made a midi harmonica, now I need help fine tuning

I just uploaded it to youtube. https://youtu.be/Szz8NdRDPS8 It is simple, two motors running P and N Chan Mosfits held high. From the gates to an opticoupler that goes to ground When I receive an on message for the correct channel A slider has a potentiometer connected by a belt and I have mapped the holes to the harmonica. Now I need to get to the hole as fast as possible but not overshoot. I am using analog write and when the hole is close, I am slowing down the motor. Watch the video you will see how it works. My code is first grade in complexity. Nothing fancy just a lot of if and else if, Right now I have the motors on different ardunino’s to avoid any delay in starting to blow or suck. \

void movenote(){
if(hole != holeold){

int sensorValue = analogRead(A0);
sensorValue = map(sensorValue, 2, 92, 60, 0);
delay(1);
do{

val =abs(sensorValue- hole);
if(val>0){

//int sensorValue2 = analogRead(A0);
//delay(1);
//}while(sensorValue != sensorValue2);
// average = sensorValue; // total = total - readings[readIndex];
if(sensorValue > hole){
do{
time1=time1+1; //just in case it wants to keep going, an exit
if(time1>20){
analogWrite(6, 0);
analogWrite(9, 0);
digitalWrite(13, HIGH);

time1=0;
time2=time2+1;
}
if (time2 > 5){ // bail out on sensor detect

analogWrite(6, 0);
analogWrite(9, 0);
digitalWrite(13, HIGH);
time2 = 0;
break;
}
// this moves the slider one direction if the val is above the hole and the other when below

mov = 6;
averagemax = sensorValue;
averagemin = hole;
val2 = sensorValue - hole;

if((val2 > 0) && (val2 <= 5)){

analogWrite(mov, 45);
//delay(2);
//analogWrite(mov, 0);
// delay(1);
}else if((val2 > 5) && (val2 <= 12)){
// time1=5;
analogWrite(mov, 48);
//delay(2);
//analogWrite(mov, 0);
//delay(1);
}else if((val2 > 12) && (val2 <= 20)){
// time1=5;
analogWrite(mov, 52);
// delay(2);
//analogWrite(mov, 0);
//delay(1);

}else if(val2 > 20){
// time1 = 5; //+(val2 * .1);

analogWrite(mov,52);
// delay(2);
//analogWrite(mov, 0);
//delay(1);
}
sensorValue = analogRead(A0);
// add the reading to the total:
delay(1);
sensorValue = map(sensorValue,2, 92, 60, 0);
if(sensorValue <= averagemin){
// sensorValue = averagemax;
//analogWrite(mov, 0);

analogWrite(mov, 0);

sensorValue = analogRead(A0);
delay(1);
sensorValue = map(sensorValue,2, 92, 60, 0);
}

val2 = sensorValue - hole;

// val2 =abs(sensorValue- hole);

} while (val2 > 0);

Would the slider be light enough to move with a hobby servo? The servo would include the pot and the motor and the motor controller. You would just use the Servo library to tell it which position to go to. That would greatly simplify your software design.