I just tested it with an analog controller... As long as you are moving in a direction it works right, but when it's centered, I keep moving like you describe.
Sure seems like a Mame bug... 
I thought i remembered another thread where u_rebelscum told everyone how to fix it so you can use an analog stick and have it stop when the stick is centered
Hmm, I don't remember that thread, but writing this post seems familiar...
I'm able to play with the analog stick on my gamepad, stand-n-throw and all (mostly). In my case, I had to increase the X axis sensitivity to 125% so I could move straight left. And to stand-n-throw, I need to be pushing a little in the direction I want to throw or else I face right. Either I need to re-calibrate the gamepad in windows, or the default "center" in mame is a little to the right of what the game thinks is center.
To stand-n-throw, you need an analog stick. Pushing a little in a direction makes you face (and throw) that way; pushing more makes you run that way.
If you
have to play with a digital stick and want to be able to stop when the stick is centered, you can edit the source (src/drivers/foodf.c) and add the "
IPF_CENTER" flag to the input type (lines 249, 252, 255 & 258, as of mame 0.72u2):
PORT_ANALOG( 0xff, 0x7f, IPT_AD_STICK_X | IPF_PLAYER1 | IPF_REVERSE | IPF_CENTER, 100, 10, 0, 255 )However, standing and changing the direction you face without moving will be hard if not impossible. Plus then you can't really throw in any direction but the 8-ways.