The standard way to create stub secret keys for smartcards is to use gpg2 --card-status. Sadly if there are existing stub keys (for example, when using multiple cards) this operation appears to have no effect and not import secret keys. It is possible to work around this by shuffling secret keys around by hand but it isn't a good user experience.