You can use SharePoint designer to upload html file to the root of the site and then go to site settings page and set the welcome page.
If you want to automate it, you should be able to provision html at the root of the site by a FEATURE that uses Module element.
From VS.NET add project item of type Module, replace sample.txt with your html file and make sure the elements.xml looks like below assuming you have sample.htm file abd your module name is RootModule. The name of module and html file can be different in your case.
<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="RootModule">
<File Path="RootModule\Sample.html" Url="Sample.html" />
</Module>
</Elements>
Sometimes the html files doe not render and it asks to download it, if so, check How do I prevent Sharepoint from asking to download html files to my local machine?