Xbox controllers ship with a firmware bug out of the box (thanks microslop!), you need to update the firmware to make them work properly on Linux, but it needs to be done through windows as explained in this section in the Arch Wiki. EDIT: you still need to install the xpadneo driver once your firmware is updated.
A decent option for those of us that don't have and don't want to have windows around is to bring your controller with you to a computer shop, along with a usb cable, and use one of the demo computers to update it.
If spending money is an option, a lot of people already recommended 8bitdo controllers, I can only say I agree with that. I have the ultimate 2c, which is about ~30 eur, comes with hall effect joysticks, so no stick drift ever, and uses a dongle for the wireless connection, with an option to use bluetooth as well. Plus they come in some really pretty color combinations. Hard to beat that for the money.

