Salir de un ciclo while+Arduino ethernet

hola foro, tengo un problema con un codigo de arduino, estoy usando ethernet, practicamente es para controlar un motor a pasos en modo automatico y manual, en el automatico yo decido la posicion y en el manual lo muevo con un pot, el problema es que cuando entra en el modo manual (ciclo while), este ya no puede salir de ahí y arduino ya no enviará otra linea de caracteres http (ya que de ahi obtengo la información para hacer el cambio de modo manual- auto), mi pregunta es, que se podra agregar para que arduino obedezca ese cambio, gracias, adjuto el codigo.

#include <SPI.h>
#include <Ethernet.h>

#include “AccelStepper.h”

AccelStepper stepper(1, 9, 8);

int val = 0;
int previous = 0;
int long newval = 0;
int option;

String readString; // Cadena para lectura de los datos.
int i2= 6;
int i1=8;
int PWM = 5; //pin para variar la velocidad mediante pwm eneble del modulo
int contador = 0;
int pulso; //cantidad de ticks que va girar motor
int avance;
byte mac = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

IPAddress ip(169, 254, 187, 250); // Mi dirección (JASR, 180919, 23:41). Esta se pone en el navegador

EthernetServer server(80); // Puerto 80 por defecto para HTTP

void setup() {

stepper.setMaxSpeed(3600); // Set speed fast enough to follow pot rotation
stepper.setAcceleration(3600);

Ethernet.begin(mac, ip); //inicializa la conexión Ethernet y el servidor
server.begin();
Serial.begin(9600);
pinMode(i1,OUTPUT);
pinMode(12,OUTPUT);

}
void loop() {
// Crea una conexion Cliente
EthernetClient cliente = server.available(); // Inicializa cliente como servidor ethernet
if (cliente) {
byte x = 0;
while (cliente.connected()) {
if (cliente.available()) {
char c = cliente.read();

//Lee caracter por caracter HTTP (Esta cadena se genera cuando se acciona el botón enviar)
// Aparece en el campo de texto de la URL (en el navegador).
if (readString.length() < 150) {
//Almacena los caracteres a un String
readString += c;
}

// si el requerimiento HTTP fue finalizado
if (c == ‘\n’) {
cliente.println("");
//Página Web en HTML
// cliente.println("<meta http-equiv=‘refresh’ content’=5’/>");
cliente.println("");
cliente.println("");
cliente.println(“Control de un eje lineal”);
cliente.println(" “);
cliente.println(“body {”);
cliente.println(“background-color: rgb(0,0,255);”);
cliente.println(”}");
cliente.println(“h1 {”);
cliente.println(“color: rgb(42,159,255);”);
cliente.println(“font-family: verdana;”);
cliente.println(“font-size: 300%;”);
cliente.println("}");
cliente.println(“h2 {”);
cliente.println(“color: rgb(0,240,120)”);
cliente.println(“font-family: courier;”);
cliente.println(“font-size: 160%;”);
cliente.println("}");
cliente.println(" “);
cliente.println(”

ININ Mx

");
cliente.println("

CONTROL DE EJE MEDIANTE SERVIDOR WEB

");
cliente.println("
“);
cliente.println(”<form action= >");
cliente.println("");

cliente.println("<table align= center style= “width:220px;border:0px solid red;”>");
cliente.println(" “);
cliente.println(”<th colspan=“2”>MODO “);
cliente.println(”<table align= center style= “width:220px;border:1px solid red;”>");
cliente.println(" “);
cliente.println(”");
cliente.println("");
cliente.println(" ”);
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println(" “);
cliente.println(”

“);
cliente.println(”");
cliente.println(“AUTO
");
cliente.println("");
cliente.println(" MANUAL
“);
cliente.println(” “);
cliente.println(”");
cliente.println("
“);
cliente.println(”
“);
cliente.println(”<table align= center style= “width:220px;border:1px solid blue;”>");
cliente.println("");
cliente.println("<th colspan=“2”>POSICION AUTO (%) “);
cliente.println(”<select name=posicion style = “font-size: 20px;”>");
cliente.println(" 0 “);
cliente.println(” 10");
cliente.println(" 20");
cliente.println(" 30");
cliente.println(" 40");
cliente.println(" 50");
cliente.println(" 60");
cliente.println(" 70");
cliente.println(" 80");
cliente.println(" 90");
cliente.println(" 100 “);
cliente.println(”");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println("
“);
cliente.println(”
“);
cliente.println(”<table width=20 align= center style= “width:220px;border:0px solid red;”>");
cliente.println(" “);
cliente.println(”<input type= submit name= enviar value=ENVIAR style=font-size: 20px;background:green"> “);
cliente.println(”");
cliente.println("<table width=20 align= center style= “width:220px;border:0px solid red;”>");
cliente.println("<input type= submit name= paro value=PARO style=font-size: 20px;background:green"> “);
cliente.println(”");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.stop();//Cierro conexión con el cliente
//------------------------------------obtengo cadena-----------------------------------------------
if(readString.indexOf(“ENVIAR”)>0){
int igual=readString.indexOf("=");
int amp=readString.indexOf("&");
String subcadena=readString.substring(igual+1,amp);

String subcadena2=readString.substring(igual+15,igual+18);
Serial.println(subcadena);
pulso=subcadena.toInt();
avance=subcadena2.toInt();
Serial.println(subcadena2);
}
//-------------------------------------------------------------------------
if(readString.indexOf(“ENVIAR”)>0){//condicon para pulsar enviar
//------------sentido del motor--------------------------------------------------------------
if(readString.indexOf(“modo=AUTO”)>0){

if(readString.indexOf(“posicion”)>0) {
stepper.runToNewPosition((8300/100)* avance);
Serial.println(avance);
}

}
else if(readString.indexOf(“modo=MANUAL”)>0){
/*
EthernetClient cliente = server.available();
char c = cliente.read();
*/
while(readString.indexOf(“modo=MANUAL”)>0){

val = analogRead(A4); // Read Potentiometer current value
if ((val > previous+20) || (val < previous-20))
{
newval = map(val, 0, 1023, 0, 8300); // Map value (1600 = 1 stepper shaft rotation)
stepper.runToNewPosition(newval);
previous = val; // save current value into variable previous
}

}

}

}
readString="";
}
}
}
}
}

Lee el privado que te he enviado.
Basicamente los códigos no pueden ir como texto plano sino con etiquetas </>. Edita