First of all, I don't want to sound rude but this is absolutely basic windows system administration stuff. The details are covered in countless books, on-line blog articles, the Microsoft website, etc. Most of the time this sort of thing will go really smoothly with no problems, but when it goes wrong it can go very wrong very quickly. Nobody ever said "boy we had just too many backups and tests there, what were we thinking" after doing something like this...
There's lots of help out there (and here of course!) but you will need to do either do some of that research or hire a consultant for a day or two's work to do this - no one can give you an absolutely foolproof "cookbook" set of instructions to follow. But I'll give you an outline that breaks it down into smaller manageable chunks...
The most painless way of doing this would be to configure the new server as a member of the domain the old one is hosting, then add the domain controller, DNS and DHCP roles and promote the new server to be a second domain controller in the original domain.
That's all your accounts and so-on transferred.
The configure DNS to get its info from the first server's DNS (hopefully stored in AD anyway). That's DNS configured.
DHCP - I'd just set this up as a new DHCP server when you're ready rather than bothering to do anything else. You'll want to update DNS info and the like in DHCP settings to refer to the new server, not the old.
At this point you've got the server online and done a fair amount of setup with no downtime to users. Not bad eh?
Not used it myself but microsoft have a tool for migrating file shares to a new file server. You'll want to then move all the users over to using the new server for their files at this point, which might involve either some downtime or some running around after hours while everyone else is off home(you don't want some users accessing files on the new server and others accessing them on the old one, do you?).
At this point, you can leave the old and new server running side by side for as long as you like, so test test test. Disable DHCP on the old server and make sure it works on the new one (so you can just re-enable it on the old server if you have problems). When you are ready, shut down the old server and test test test some more to make sure the network behaves as expected.
At this point you need to decommission the old server - uninstall AD properly, using the guides that are out and about - this is the area that possibly carries some risk if you mess it up, so if you only take my advice about considering getting help and/or researching and understanding stuff before doing it for one little part of what you're doing then make it this part.
Actually at this point, rather than decommission the old server, I'd consider just tidying up the file server role and using it as an additional domain controller. This can improve your network's reliability and make it much easier to get going again if the new server should happen to break down.