So you have a map and some data in a spreadsheet, and you want to display the shapes in the map based on data in the spreadsheet. In order to do this you will need to perform a Join to link the two sets of data. In order to do a join, both sets of data must have a common, identical reference. If the attributes of your shapes only identify them by full state name, you'll have to modify one set of data or the other. You could add the state abbreviations to the map data, or you could add the full state name (exactly as it appears in the map data) to the spreadsheet.
Once you've done the join you can save that data to a new shapefile to make it permanent if you like, as joins are only temporary. Then you'll need to symbolize the shapes based on your percentage column. Since no two states are likely to have the same percentages (and even if some do, most values will be fairly unique), you'll have two choices on how to do this. In a classed choropleth, you'll decide groupings (ranges) for the values and all states that fall in a group will be the same color. In an unclassed choropleth, all states will be shown as a unique color on a spectrum. Based on your description I think the latter method is what you'll want.
You can find a short tutorial on the general process here. It creates a classed choropleth, but once you learn the process and concepts you should be able to figure out where you need to change options. That site in general has a number of good tutorials. The QGIS documentation also has a few components that are tutorial like in nature. You might start with the Gentle Introduction in GIS, while the User Guide outlines many specific tools in a how-to way, and the Training Manual strings things together a bit more as 'lessons'.