Based off previous threads (mainly on neoseeker, I would suggest checking them out), Miraak becomes quite a hindrance /insert speculation because the developers assume players have completed the main quest line by this point and/or have dragon souls stockpiled up /end speculation.
some have posted their solution for avoiding their souls being stolen:
1) Save your game right when a dragon you're fighting reaches low health, and then kill it. Even in Skyrim Miraak wont always come and steal your soul, so if it does happen, simply reload and kill the dragon again until Miraak doesn't come and take it.
2) Killing a dragon on/over water will prevent Miraak from appearing.
Side note, once you unlock the second word of the shout, Miraak becomes less annoying.
Hope this helps!