You could potentially use WITH RECOMPILE when there is a good possibility that the compiled plan may be inefficient for different combinations of input parameters. But even so, it should be used with much caution and testing because recompiling can be expensive.
Places where you use dynamic search conditions - like the one shown in the example below - might be a place where recompiling might help. In this example, if a query plan generated for one set of parameters is likely to be not very efficient for a different set of parameters. Even so, rather than doing the recompilation at the stored procedure level, one should consider using the OPTION (RECOMPILE) at the statement level.
CREATE PROC dbo.SearchForSomething
(@a IS NULL OR @a = a)
AND (@b IS NULL OR @b = b)
AND (@x IS NULL OR @x = x);