You need a better understanding of what values of X & Y the controller is returning when you move the stick around.
I can see some obvious problems with your code.
First I suggest you simply loop and output the values of X & Y to the Arduino console (via serial). That will show you the sort of values you need to test for to decide when to move and in which direction.
Once you have done that you will know what values of X & Y the controller returns when it is centred (I expect the value to be about 128), left (expect X=0), right (expect X=255), forward (expect Y=0) and back (expect Y=255). You can use your "threshold", but not in the manner you are currently doing. Try testing for < 100 and > 160:
if (x < 100){ "left" }
else if (x > 160) { "right"}
else "stop"
similar for Y. You need to make sure that if you don't completely separate the tests for X and Y as in that case your code (as it stands now) will for instance if X = 200 and Y = 128 (ie joystick is right), your code will test X and command a right turn but then immediately test Y and stop the servos. This means you really need to test both X & Y at the same time and have cases for stop, left, right, forward, back, left-forward, left-back, right-forward and right-back. Once you have determined which of these 9 cases you are in, you can command the servos to move.
Also I suggest you replace the calls to the servos inside your "if" statements with calls to output text (via serial) to the Arduino IDE console, for instance inside your first "if" you should print "backwards". This will let you know whether your code is working without making your servos go crazy.