Alternatively, if you are walking an AST and only interested in the exported names then you can use
https://golang.org/pkg/go/ast/#PackageExports . It will filter your tree to only elements that are exported before you begin traversal.
As to your specific case of determining if a type used in a method signature is exported, I'd ask: Does it matter if the source package is the same one where the method is defined or is it any non-builtin, exported types used in the signature?
I believe the case of "exported name used in a method within the same package" can be determined by iterating of the 'Params.List' attribute of the ast.FuncType and looking for elements of the slice that are of type '*ast.Ident' and checking the corresponding 'IsExported' method call results. For complete coverage, you'd also need to check for *ast.ArrayType, *ast.ChanType, *ast.MapType, *ast.Ellipsis (for uses of the type as a variadic), *ast.FuncType (and its corresponding arguments and return types), and *ast.StarExpr (for uses of the type as a pointer).
The case of "any non-builtin, exported type from any package" would use the previous logic but also add in checking for elements of 'Params.List' that are of type '*ast.SelectorExpr'. While I'm sure there is a case where this is not true, the elements of type *ast.SelectorExpr in the parameter list of an *ast.FuncType are usually references to a type exported by another package (think "http.Handler"). The 'X' attribute can be converted to *ast.Ident for the source package name and the 'Sel' attribute contains the name of the referenced type. Note that the package name might actually be a local alias when the file imports with ' import myname "net/http" '.