The most important thing is what google sees. You don't care what JavaScript does to the images. You care what Google reads.
Either use Fetch as Google or Lynx Web Browser to see how your website looks like from search engine perspective.
So first thing first - you should use alt
tags on your images. This way it's more google-friendly, and actually becomes valid W3C code.
Secondly - as far as I can see on Nivo Slider website it's using quite clean HTML input
<div id="nivoslider-125" class="nivoSlider" style="width:700px;height:300px;"><img src="http://nivo.dev7studios.com/wp-content/uploads/2011/08/nemo83-700x300.png" alt="" /><img src="http://nivo.dev7studios.com/wp-content/uploads/2011/08/slider65-700x300.png" title="#nivoslider-125-caption-0" alt="" /><img src="http://nivo.dev7studios.com/wp-content/uploads/2011/08/walle12-700x300.png" alt="" /></div>
so you shouldn't be bothered at all with the fact that is slices images. It could slice them, rotate, turn into a thousand pieces - it wouldn't matter at all. Google cannot see that. What should interest you is the HTML code. So your best bet in putting the description would be by using the longdesc
attribute on img
tag.
Alternative is that you use divs that are forced to be hidden. Like that:
<div style="display: none !important;">here is some text</div>
But I'm not sure if they won't collide with slider script, and doing things like that in general is a bad practice.
Third way would be to use progressive enhancement, and either - put your text descriptions in a placeholder Div, or don't put it at all onto a website.
In first case you'd want to replace your placeholder div holding your content with actual slider AFTER the main content is loaded (either use simple JS content or AJAX). In second case you'd add a slider into the proper spot after the main content is loaded (again: AJAX/JS) and in terms of SEO: Work as if slider wouldn't be there. Prioritize content instead (which is IMHO the best thing you can do).