Control servos through app trouble

but when trying to send commands it seems as if I'm bombarded with random data

Can you describe in more detail what this means?

Can you describe in words without reference to the code, what you want each servo to do when you enter either 'a' or 'z'? What moves, and at what speed?

There are problems with the code in that the for() loops are blocking new Serial input but non responsiveness is not what your are focusing on with the term "random data".

There appear to be some bugs in the code.

I think that in this section of code, the delay(15) wants to be inside the for loop

for (pos2 = 0; pos2 <= 180; pos2 += 1)
      {
        myServo1.write(pos2);
        delay(15);
        pos2 = pos2 + moveAmount;
        if (pos2 == 0 || pos2 == 180) {
          moveAmount = -moveAmount;
        }       
      }
     // delay(15);

As asked above, what do you want the motion of this servo to be? There are two places where pos2 is incremented and I don't think it produces the values were moveAmount changes sign. But again, I don't see this as a "random data" symptom.