Como eliminar el Delay()?

Buenas tengo una función con la que ya no se que hacer para eliminar los delay(30000); porque se me detiene las otras instrucciones lo que ocupo es que la bomba no arranque de inmediato cuando baje el nivel del agua para que no entre y salga por segundos sino que espere 30 segundos antes de arrancar les pongo la función si me peden ayudar les agradecería mucho

Funcion:

void Control(void){
// Arranque/Paro de Bomba  
if (StateCon == HIGH){   //Si el contenedor esta lleno
if (StateSup == LOW) //si el tubo superior esta lleno
  {
    digitalWrite(Bomba, LOW); //paro de bomba
    delay(30000); //retardo para que no arranque la bomba inmediatamente
  }
  else if (StateInf == LOW) //si tubo inferior esta lleno
  {
   digitalWrite(Bomba, LOW); //paro de bomba
   delay(30000); //retardo para que no arranque la bomba inmediatamente
  }
  else
  { 
    digitalWrite(Bomba, HIGH); //arranque de bomba
  } 
}
else
{
  Alarmas();
  digitalWrite(Bomba, LOW); //paro de bomba por contenedor vacio
}
}

La solución es usar millis() pero no veo todo el código y no se cuantas veces es llamado Control para poder implementarlo.

Lo mando llamar cada ciclo del arduino también llamo funciones de medición y unas imágenes de la pantalla