Accelstepper

GF1021:
Once the filling is done I hit the home button and it (and here is the problem) turns 2-3 more times in the CCW direction before it reverses and goes CW.

I find that confusing.

Do you want it do do 2 or 3 more turns but it is not doing them?

OR

Is it doing 2 or 3 turns that you don't want it to do?

You should NOT have

stepper.run();

inside any functions. That line is only needed once and it should be in loop().

It may also be useful to use stepper.distanceToGo() to check that a movement has completed.

Or, if a movement has intentionally completed prematurely you might want to use stepper.setCurrentPosition() to update the library's position data.

...R