Claro que puedes, no es mas que pasar el código que tienes en el controller al repository y luego llamar al repository para obtener la query, aunque me parece mejor devolver directamente los resultados.
 
Algo asi:  
Controller   
Código PHP:
Ver original- public function indexAction() 
- { 
-     $lastestBlogs = $this->getDoctrine() 
-                          ->getEntityManager() 
-                          ->getRepository('BlogRepository') 
-                          ->getLatestBlogs($this->get('request')->query->get('page', 1)); 
-   
-     return $this->render('BloggerBlogBundle:Page:index.html.twig', array( 
-             'blogs' => $latestBlogs 
-         )); 
- } 
Código PHP:
Ver original- public function getLatestBlogs($page = 1, $limitPerPage = 10) 
- { 
-     $dql = $em->createQuery('SELECT b, c FROM BloggerBlogBundle:Blog b LEFT JOIN b.comments c'); 
-     ... 
-     $count = Paginate::getTotalQueryResults($dql); // Step 1 
-     $paginateQuery = Paginate::getPaginateQuery($qb, $offest, $limitPerPage); 
-   
-     return $paginateQuery->getResult(); 
- } 
Te dejo una referencia a un bundle que te puede interesar 
http://0hlsson.se/2011/09/13/paginat...ginatorbundle/ 
Saludos.