Joystick is weird on the Apple // series. It is 100% analogue, and uses a timing-dependent read routine to read how long a capacitor takes to go to zero after pulsing it with a charge. (this is discussed in Jim Sather's book, among other places) -- anyway another factor in analog joystick support is that many games have some kind of manual or automatic calibration. Manual = Data east games like Bruce Lee ask you to put the joystick in different configurations and press a button. Automatic = either makes a naive assumption that < 64 = left, > 192 = right and 64-192 = center and then adjusts this based on the joystick being centered when the game starts. Meaning if joystick is not actually plugged in or enabled at the time the game starts then auto-calibration will be wrong and the game will act weirdly. I don't know of many games that auto-calibrate -- many of them just make a basic assumption about the ranges of expected values.
One way to test the joystick behavior is to run a simple program like:
10 print pdl(0),pdl(1): goto 10
This will let you see the range of values while the joystick is moved around. If all you see is 255 then that's why your character just moves right.