If you’re using the WP-PageNavi plugin, there are several FAQs on using it with a secondary query loop:
http://wordpress.org/plugins/wp-pagenavi/faq/
this code is from one of the pages linked from that FAQ:
$my_query = new WP_Query( array( 'tag' => 'foo', 'paged' => get_query_var('paged') ) );
while ( $my_query->have_posts() ) : $my_query->the_post();
the_title();
// more stuff here
endwhile;
wp_pagenavi( array( 'query' => $my_query ) );
wp_reset_postdata();
specifically, they want you to retrieve the current page number:
get_query_var('paged')
and pass it into the paging function:
wp_pagenavi( array( 'query' => $my_query ) );
I just created an author page on a test site, with a new WP_Query with a specified author, posts_per_page set to 2, and get_query_var(‘paged’). The page displayed 2 posts from the specified author, with the spiffy navigation at the bottom of the page.