Solution 1:

I would start ramping up an additional server (must be joined to your current domain BEFORE you install MS Exchange 2016 on it; keep noted that there is no option to perform an in-place upgrade of MS Exchange, so you need a 2nd server here to move to a higher Exchange server) which will will later one host MS Exchange 2016 and then you need to perform the following steps:

  • Make sure the Schema is up to date to install MS Exchange 2016 (see here for more infos) if there is no Exchange 2016 server installed you need to upgrade that one during or before you install MS Exchange 2016.
  • Install MS Exchange 2016 (you can use the latest CU here, the ISO for the CU included the whole installer, then you start with an up to date environment. At the moment this is CU 6. Keep noted that .net 4.7 is currently not supported on Exchange 2016 as written here, so you might keep an eye on the patch management from your new server as it might come in automatically depending on your setup)
  • Configure MS Exchange 2016 to handle the MS Exchange 2010 traffic (called a Coexistence Environment, see here for some older but still valid infos)
  • Move the mailboxes from Exchange 2010 to Exchange 2016 (via New-MoveRequest as explained here)
  • Remove Exchange 2010 from the environment
  • Optional: Once done you could rampup an additional Domain controller and move the AD roles there, then demote the old Domain controller (you might wish to setup an ESXI environment and host Exchange and the Domain Controller on one hardware if your budget force you to do that).

Here is a howto which covered that in some very detailed steps.

P.S: Please keep noted that running MS Exchange on a Domain controller is not really supported. You really should change that!