Does it stop lagging if you comment out this line?
attachInterrupt(digitalPinToInterrupt(ENCA),readEncoder,RISING);
If it still lags, the problem is in displaying text for each step of the stepper and not in measuring the position.
Similarly, try moving the output out of the loop:
for (int i=0; i <= 400; i++) { //This loop will perform one revolution
digitalWrite(Ena, LOW); // optimize values in the for loop to get the highest torque possible
digitalWrite(Pul, HIGH);
delayMicroseconds(1000);
digitalWrite(Pul, LOW);
delayMicroseconds(1000); //original value 15000, min value 2000 ca.
} // Move the end of the loop up to here
Serial.print(i); //print and track step compared to measured rotation
Serial.print(" : ");
Serial.println(pos);
// } <- No longer the end of the loop
If that stops the lagging, again it points to the problem being too much text output.