I'm not sure there is a "best" way, as what works well for someone might not work at all for someone else.
If you feel that your overall annual income is pretty consistent, even if it can vary quite a bit on a week-to-week basis, I would suggest that you look back over your last two years of income and average it out per month. So, for example, if you had total income for a two year period of $120,000 (so, $60,000 per year), budget $5,000 per month and use that as your baseline.
Additionally, I would tend to move money more slowly out of my checking account into savings or investement in order to compensate for the possibility that two weeks from now, I might not have as much income as next week, or whatever the case might be. Another option is to go ahead and move money into savings, but do it at the same bank as your checking account so that you can move some back immediately if necessary.
I have income that can vary from pay period to pay period, and it has taken some trial and error on working out the best way to craft a budget. However, I have reached a point where I have a system that works for my situation, so I know it can be done. However, my system may not work at all for you. So, it may require sort of playing around with it some until you find what works best for you.
Sorry I couldn't give a more concrete answer, but again, what is "best" is going to vary from person-to-person and situation-to-situation. Hope it helps some and best of luck.
WalletHub Answers is a free service that helps consumers access financial information. Information on WalletHub Answers is provided “as is” and should not be considered financial, legal or investment advice. WalletHub is not a financial advisor, law firm, “lawyer referral service,” or a substitute for a financial advisor, attorney, or law firm. You may want to hire a professional before making any decision. WalletHub does not endorse any particular contributors and cannot guarantee the quality or reliability of any information posted. The helpfulness of a financial advisor's answer is not indicative of future advisor performance.