To clarify, you want to expose your custom database into C1 using IDataProvider. Is this correct? I ask because you can also add a C1 function that calls the stored procedure and returns XML (Another way of getting your data into C1).
Assumed that you want to use the IDataProvider method. There is no direct way of doing this calling stored procuderes. The easy, but not performing way is: Execute stored procedure and "convert" the result into a IQueryable and use this in your custom IDataProvider
If want more performance, then I think you have to parse the linq expression tree, extract what every information you can use to parse on to your stored procedure. This involves creating your own IQueryable implementation and returning this in your IDataProvider
More on LINQ to stored procedures: http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx
Custom IQueribale implementation: http://blogs.msdn.com/b/tommer/archive/2007/04/20/building-custom-linq-enabled-data-providers-using-iqueryable-t.aspx or one of C1s implementations: http://compositec1.codeplex.com/SourceControl/changeset/view/7427#42629
Hope this helps!