There are no "best" ways to map an arbitrary MIDI controller for controlling Ardour. There may be very legitimate reasons for different users to prefer quite different mappings.
On every platform that Ardour runs on, there are excellent free-of-charge tools for making connections between MIDI hardware and "virtual" MIDI ports like the ones that Ardour creates and uses. Rather than waste precious developer time replicating these connection/patch managers, we prefer to leverage their existence by having users rely on them to actually connect Ardour to other MIDI devices and software. On OS X, we recommend Pete Yandell's MIDI Patchbay. On Linux, a wide variety of tools are available including QJackctl, aconnect, Patchage, and more.
- Enable Generic MIDI control: Edit > Preferences > Control Surfaces > Generic MIDI
- Connect Ardour's MIDI port named control to whatever hardware or software you want (using a MIDI patchbay app)
- Middle-click on whatever on-screen fader, plugin parameter control, button etc. you want to control
- A small window appears that says "Operate Controller now"
- Move the hardware knob or fader, or press the note/key.
- The binding is complete. Moving the hardware should control the Ardour fader etc.
Avoiding work in the future
If you want the bindings you set up to be used automatically in every session, the simplest thing to do is to use Session > Save Template. Then, when creating new sessions, select that template and all the bindings will be automatically set up for you.