you can use a simple worksheet_change event to find if the filter value is changed, and call the required macro.
example:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$4")) Is Nothing Then
MsgBox "You can call your macro function here"
'Use macro code or Call macro here..
End If
End Sub
Here Range("$C$4") is the cell where you have the pivot filter..