Wouldn't it be possible to use the analogue input values and base the speed on them by multiplying?
"Joystick movement is in the range -100 to 100 on each axis, and if the distance from the center is below the Analog deadzone value, it will return 0"
so if the maximum speed is 400, you'd just set the speed to something like: abs(Axis(Gamepad, Index))*Maximumspeed