JoyRide (see Aminet) could be part of the solution. IIRC it generates input events for joystick input, and maybe they could be remapped to existing or new keyboard shortcuts. That would be enough to assign specific actions to joystick buttons and directions, or do you want to navigate around the UI with the joystick?